package com.threeti.jiayusms.framework.domain;

import java.io.Serializable;

import com.threeti.jiayusms.framework.domain.support.DefaultDomainEntity;


/**
 * 对自定义键实体的抽象<p/>
 *
 * 1.必须额外提供一个唯一的代理键，当需要时，该键可被作为子类（自定义键）实体的候选键<br/>
 *
 * 2.TODO 对应于HB中的natural-id、composite-id的实现策略，原则上应强制抽象出business key对象，而非仅仅是HB配置或数据库层面的(唯一非空约束)，
 *   如果无法进行抽象，则极有可能需要引入某种关联类(hb:association-class)机制(在关联类的层面再提供business key抽象)
 *
 * @author Jay Meng
 */
public abstract class AbstractCustomKeyDomainEntity<CUSTOM_ID extends Serializable> extends DefaultDomainEntity {

  public abstract CUSTOM_ID getCustomId();

  public abstract void setCustomId(CUSTOM_ID id);

}
